// ●实现一个合并乱序区间
// 1.输入 [[1,4], [3,8], [10,15], [11,18], [20,27], [14,15],[19,28]] 
// 2.期望输出 [[1, 8], [10,18],[19,28]]
function mergeIntervals(intervals) {
    if (intervals.length <= 1) return intervals;
    
    // 按照区间起始位置进行排序
    intervals.sort((a, b) => a[0] - b[0]);
    
    const result = [];
    let currentInterval = intervals[0];
    
    for (let i = 1; i < intervals.length; i++) {
      const interval = intervals[i];
      
      // 如果当前区间与下一个区间有重叠，则扩展当前区间
      if (currentInterval[1] >= interval[0]) {
        currentInterval[1] = Math.max(currentInterval[1], interval[1]);
      } else {
        // 否则，将当前区间添加到结果列表中，并更新当前区间为下一个区间
        result.push(currentInterval);
        currentInterval = interval;
      }
    }
    
    // 将最后一个区间添加到结果列表中
    result.push(currentInterval);
    
    return result;
  }
  
  // 示例：
  const intervals = [[1,3],[2,6],[8,10],[15,18]];
  console.log(mergeIntervals(intervals)); // 输出 [[1,6], [8,10], [15,18]]
  